﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SoundConstructor
{
	class MockWindow 
	{
		public Presenter Presenter { private get; set; }

		private IList<string> namesOfOnetimeSounds;
		private IList<string> namesOfRepeatedSounds;

		string nameOfOnetimeSound;
		string xmlParameterName;
		double xmlParameterValue;
		uint maxDuration;
		bool blockRepeat;
		string soundFileLocationOfOnetimeSound;
		double specifiedVolume;
		double specifiedFrequency;

		// Fields for repeated sound
		string nameOfRepeatedSound;
		string nameOfXmlParameterForVolume;
		string nameOfXmlParameterForFrequency;
		double valueOfXmlParameterForVolume;
		double valueOfXmlParameterForFrequency;
		double volumeOfRepeatedSound;
		double frequencyOfRepeatedSound;
		string soundFileLocationOfRepeatedSound;
		SortedList<double, double> tableOfValuesForVolume;
		SortedList<double, double> tableOfValuesForFrequency;

		public IList<string> NamesOfOnetimeSounds
		{
			private get { return namesOfOnetimeSounds; }
			set
			{
				namesOfOnetimeSounds = value;
			}
		}
				
		public IList<string> NamesOfRepeatedSounds
		{
			private get { return namesOfRepeatedSounds; }
			set
			{
				namesOfRepeatedSounds = value;
			}
		}

		public string NameOfOnetimeSound
		{
			get { return nameOfOnetimeSound; }
			set
			{
				nameOfOnetimeSound = value;
			}
		}

		public string XmlParameterName
		{
			get { return xmlParameterName; }
			set
			{
				xmlParameterName = value;
			}
		}

		public double XmlParameterValue
		{
			get { return xmlParameterValue; }
			set
			{
				xmlParameterValue = value;
			}
		}

		public uint MaxDuration
		{
			get { return maxDuration; }
			set
			{
				maxDuration = value;
			}
		}

		public bool BlockRepeat
		{
			get { return blockRepeat; }
			set
			{
				blockRepeat = value;
			}
		}

		public string SoundFileLocationOfOnetimeSound
		{
			get { return soundFileLocationOfOnetimeSound; }
			set
			{
				soundFileLocationOfOnetimeSound = value;
			}
		}

		public double SpecifiedVolume
		{
			get { return specifiedVolume; }
			set
			{
				specifiedVolume = value;
			}
		}

		public double SpecifiedFrequency
		{
			get { return specifiedFrequency; }
			set
			{
				specifiedFrequency = value;
			}
		}

		public string NameOfRepeatedSound
		{
			get { return nameOfRepeatedSound; }
			set
			{
				nameOfRepeatedSound = value;
			}
		}

		public string NameOfXmlParameterForVolume
		{
			get { return nameOfXmlParameterForVolume; }
			set
			{
				nameOfXmlParameterForVolume = value;
			}
		}

		public string NameOfXmlParameterForFrequency
		{
			get { return nameOfXmlParameterForFrequency; }
			set
			{
				nameOfXmlParameterForFrequency = value;
			}
		}

		public double ValueOfXmlParameterForVolume
		{
			get { return valueOfXmlParameterForVolume; }
			set
			{
				valueOfXmlParameterForVolume = value;
			}
		}

		public double ValueOfXmlParameterForFrequency
		{
			get { return valueOfXmlParameterForFrequency; }
			set
			{
				valueOfXmlParameterForFrequency = value;
			}
		}

		public double VolumeOfRepeatedSound
		{
			get { return volumeOfRepeatedSound; }
			set
			{
				volumeOfRepeatedSound = value;
			}
		}

		public double FrequencyOfRepeatedSound
		{
			get { return frequencyOfRepeatedSound; }
			set
			{
				frequencyOfRepeatedSound = value;
			}
		}

		public string SoundFileLocationOfRepeatedSound
		{
			get { return soundFileLocationOfRepeatedSound; }
			set
			{
				soundFileLocationOfRepeatedSound = value;
			}
		}

		public SortedList<double, double> TableOfValuesForVolume
		{
			get { return tableOfValuesForVolume; }
			set
			{
				tableOfValuesForVolume = value;
			}
		}

		public SortedList<double, double> TableOfValuesForFrequency
		{
			get { return tableOfValuesForFrequency; }
			set
			{
				tableOfValuesForFrequency = value;
			}
		}
	}
}
